1. Field of the Invention
The present invention relates generally an automated knowledge base. More particularly, the present invention relates to an automated knowledge base that provides information on and instructions for replacing one product with another, with particular applicability to upgrading and downgrading software.
2. Description of the Related Art
A knowledge base is a special kind of database for knowledge management. Generally, knowledge bases consist of explicit knowledge of an organization, including trouble shooting, articles, white papers, user manuals and others. Knowledge bases generally have a carefully designed classification structure, content format, and search engine.
In the software industry, knowledge bases include information on known bugs and incompatibilities of software products, as well as known supported and unsupported hardware. For complex software or for software distributed in a wide variety of environments and hardware configurations, the knowledge base can become quite lengthy. Add to this, the complexity of different versions of a specific software package, or conversions from or to different software vendors, and the knowledge base can become cumbersome even for an expert technician.
For example, in the process of upgrading an operating system, other complex software, or other component, it is necessary to determine the configuration of the system and to make sure that the target version of the software supports the current configuration and that the target version has no conflicts with other software currently installed. If any potential conflicts exist, then a procedure must be formulated to overcome each potential conflict prior to or during the installation of the new software version.
This procedure can be particularly difficult when upgrading a computer operating system where the target operating system must be capable of supporting all the current hardware, as well as have no conflicts with installed software currently on the system. If the hardware is old and no longer supported, then the hardware must be updated. It is also important to ensure that installed software can function with the new operating system. Since there exists a wide variety of computer architectures and system configurations, networking protocols, data storage systems, etc., and since any operating system can support only so many different architectures and so on, the list of incompatibilities can be quite large. Nevertheless, despite the complexities and potential risks of upgrading, there is often a very strong incentive to upgrade, e.g., so that new features and capabilities of newer versions can be leveraged.
A trained technician can refer to a knowledge base and/or other sources of information and formulate a procedure for upgrading a particular system depending on the various dependencies and compatibilities of the new and old software. However, due to the complexities described above, this can be time consuming and prone to errors even for an experienced technician.
There is therefore an unmet need for a system to provide some level of automation to the process of ensuring compatibility and hardware support of new software packages, as well as formulating a procedure for installing new software packages.